package br.com.tamagotchi.controle;

import br.com.tamagotchi.modelo.Tamagotchi;

public class SaudeThread implements Runnable {

	Tamagotchi tm;

	public SaudeThread(Tamagotchi tamagotchi) {
		this.tm = tamagotchi;
	}

	@Override
	public void run() {
		while (true) {
			try {
//				//Decrementa Saude
				if((tm.felicidadeCritica()) && (tm.fomeCritica()) && (tm.sonoCritico())) {
					tm.countDownSaude(5);
				}else if ((tm.fomeCritica() || tm.sonoCritico()) && ((tm.felicidadeCritica())) ||
						 ((tm.felicidadeCritica() || tm.fomeCritica()) && (tm.sonoCritico()) ||
						  (tm.felicidadeCritica() || tm.sonoCritico()) && (tm.fomeCritica()))) {
					tm.countDownSaude(3);
				}else if ((tm.felicidadeCritica()) || (tm.fomeCritica()) || (tm.sonoCritico())) {
					tm.countDownSaude(1);
				}
				
//				//Incrementa Saude
				if(((tm.felicidadeOtima())) && (tm.fomeOtima()) && (tm.sonoOtimo())) {
					tm.countSaude(5);
				}else if ((tm.fomeOtima() || tm.sonoOtimo()) && ((tm.felicidadeOtima())) ||
						 ((tm.felicidadeOtima() || tm.fomeOtima()) && (tm.sonoOtimo()) ||
						  (tm.felicidadeOtima() || tm.sonoOtimo()) && (tm.fomeOtima()))) {
					tm.countSaude(3);
				}else if ((tm.felicidadeOtima()) || (tm.fomeOtima()) || (tm.sonoOtimo())) {
					tm.countSaude(1);
				}

				if (tm.getFelicidade() <= 20) {
					System.out.println("-------Estou triste!");
				}
				if (tm.getSono() >= 80) {
					System.out.println("--------Estou com Sono!");
				}
				if (tm.getFome() >= 80) {
					System.out.println("---------Estou com Fome!");
				}
				Thread.sleep(tm.getTempoSleep() * 1000);
				System.out.println(tm.toString());
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}

}
